package net.fruit.mq.client.order;

import net.fruit.mq.client.Admin;
import net.fruit.mq.client.Message;
import net.fruit.mq.client.SendResult;

/**
 * 顺序消息生产者接口
 */
public interface OrderProducer extends Admin {
    /**
     * 启动服务
     */
    public void start();

    /**
     * 关闭服务
     */
    public void shutdown();

    /**
     * 发送顺序消息
     *
     * @param message
     *         消息
     * @param shardingKey
     *         顺序消息选择因子
     *
     * @return 发送结果，含消息Id
     */
    public SendResult send(final Message message, final String shardingKey);
}
